ФОРМИРОВАНИЕ И РАБОТА С ТИПАМИ ПЕРЕМЕННЫХ |
Для бестиповых (полиморфных) переменных машина CAPER перед выполнением той или иной операции осуществляет выравнивание типов в сторону повышения, за исключением одного случая - присвоения элементу массива значения переменной. В этом случае, если текущий тип переменной выше типа элемента массива, то машина CAPER понижает тип значения переменной до типа элемента массива. Примеры: var1 := 10, var2 := 20.25 Возможно прямое преобразование числового типа переменной с помощью функции ConvertTo( <имя переменной>, <тип> ): var1 := 12.575 ;* float SizeOf( <тип> ) - возвращает размер типа в байтах. SizeOf( 'I' ) == 4 Для явно типизированных переменных выравнивание типов осуществляет компилятор. Невозможность приведения типов (например, попытка присвоения числовой переменной строки) сопровождается сообщением об ошибке компиляции. private <int> iVar1, iVar2:=0, <byte> bVar1 := 1’B iVar1 := bVar1 ;* присвоение с повышением типа (byte к int) bVar1 := iVar2 ;* присвоение с понижением типа (int к byte) |
СДВОЕННЫЕ И МНОЖЕСТВЕННЫЕ ЗНАЧЕНИЯ ПЕРЕМЕННЫХ |
Память, выделяемая под переменные, позволяет определить свойство множественности значений переменной. Так, всякая переменная способна хранить два значения типа 'I', четыре значения типа 'H', восемь значений типа 'B'. IntLeft( <выражение> ) - возвращает левую составляющую из сдвоенного значения выражения: число типа типа 'I'. IntRight( <выражение> ) - возвращает правую составляющую из сдвоенного значения выражения: число типа типа 'I'. aHalf( <выражение>, <индекс> ) - возвращает значение полуслова с номером <индекс>, который должен быть равен 1, 2, 3 или 4. aByte( <выражение>, <индекс> ) - возвращает значение байта с номером <индекс>, который должен быть в пределах от 1 до 8. |